\documentclass[12pt]{beamer} 
%\usepackage{beamerthemesplit}

\usepackage{fontspec}
\setsansfont{PT Sans}
\setmonofont{PT Mono}

\usepackage{beamerthemesplit}
\usefonttheme[onlymath]{serif}

\usetheme{CambridgeUS}
\usecolortheme{lily} 

\hypersetup{unicode=true}
\DeclareFontEncoding{T1}
\fontencoding{T1}
\usepackage[russian]{babel}

\usepackage{amsmath,amssymb,amsthm}
\usepackage{graphics,graphicx}
\usepackage{listings}
%\usepackage{media9}
\usepackage{fancyvrb} 
\usepackage{booktabs} 
\usepackage{colortbl}
\usepackage{multirow}
\usepackage{verbatim}
%\usepackage{fancyvrb}
\usepackage{color}
\usepackage{url,qrcode}

\definecolor{mygreen}{RGB}{28,172,0} % color values Red, Green, Blue
\definecolor{mylilas}{RGB}{170,55,241}
\definecolor{codecolor}{RGB}{0,120,0}
\definecolor{light-gray}{gray}{0.8}
\definecolor{light-green}{RGB}{205,255,204}
\definecolor{light-red}{rgb}{0.9, 0.8, 0.8}
\definecolor{light-yellow}{rgb}{1,1,0.85}
\definecolor{light-blue}{RGB}{255,204,153}
\definecolor{dark-blue}{rgb}{0,0,0.6}
\definecolor{dark-red}{RGB}{204,0,0}
\definecolor{dark-green}{RGB}{28,172,0}

\usepackage{pifont}% http://ctan.org/pkg/pifont
\newcommand{\cmark}{\textcolor{green}{\ding{51}}}
\newcommand{\xmark}{\textcolor{red}{\ding{55}}}

\setbeamercolor{frametitle}{fg=dark-red,bg=gray!10}
\setbeamerfont{title}{series=\bfseries,parent=structure}
\setbeamerfont{frametitle}{series=\bfseries,parent=structure}
\setbeamertemplate{blocks}[rounded][shadow=false]
\setbeamercolor{block title}{fg=structure,bg=white} 
\setbeamertemplate{navigation symbols}{}
 
\renewcommand{\emph}[1]{\textcolor{dark-blue}{#1}}
\newcommand{\emphb}[1]{\textcolor{dark-blue}{\textbf{#1}}}

\usepackage{tikz}
\usetikzlibrary{er,arrows,matrix,positioning,shapes,snakes}

%\warn{\matcode}[1]{ \textcolor{codecolor}{\texttt{#1}}}
%\newcommand{\matcode}[1]{\begin{Verbatim}[formatcom=\color{red}]#1\end{Verbatim}}
\definecolor{codecolor}{RGB}{0,150,0}
\newcommand{\matcode}[1]{ \textcolor{codecolor}{\texttt{#1}}}


\title{Модель сущность-связь}
\subtitle{Базы данных}
\author[Кафедра ММЭ]{Юдинцев В. В.}
\institute[Кафедра ММЭ]{Кафедра математических методов в экономике}

%\pgfdeclareimage[height=1cm]{logo}{ssau.pdf}
%\logo{\pgfuseimage{logo}}
%\setbeameroption{show notes}
%\graphicspath{{img/}}

\lstset{language=python,  
    keepspaces=true,
    extendedchars=true,
    basicstyle={\footnotesize  \color{black}},
    breaklines=true,
    morekeywords={matlab2tikz},
    keywordstyle=\color{blue},
    morekeywords=[2]{1}, keywordstyle=[2]{\color{codecolor}},
    identifierstyle={ \bf \color{black} },
    stringstyle=\color{mylilas},
    commentstyle=\color{mygreen},%
    showstringspaces=false, 
    numbers=left,%
    numberstyle={\tiny \color{black}},
    numbersep=7pt, 
    emph=[1]{case,switch,otherwise},emphstyle=[1]\color{blue}, 
    frame=single,    
    %lineskip=-1.0pt,
    %emph=[2]{word1,word2}, emphstyle=[2]{style},    
}

\makeatother
\setbeamertemplate{footline}
{
  \leavevmode%
  \hbox{%  
  \begin{beamercolorbox}[wd=.3\paperwidth,ht=2.25ex,dp=1ex,center]{author in head/foot}%
    \usebeamerfont{author in head/foot}\insertshortauthor
  \end{beamercolorbox}%  
  \begin{beamercolorbox}[wd=.6\paperwidth,ht=2.25ex,dp=1ex,center]{title in head/foot}%
    \usebeamerfont{title in head/foot}\insertshorttitle
  \end{beamercolorbox}%
  \begin{beamercolorbox}[wd=.1\paperwidth,ht=2.25ex,dp=1ex,center]{date in head/foot}%
%    \insertframenumber{} / \inserttotalframenumber\hspace*{1ex}
     \insertframenumber{} 
  \end{beamercolorbox}}%
  \vskip0pt%
}

\setbeamertemplate{headline}{}
%\setbeamertemplate{footline}{1}

\AtBeginSection[]{ 
  \begin{frame}[plain]
  %\vfill  
  \begin{tikzpicture}
  \useasboundingbox (0,0) rectangle(\the\paperwidth,\the\paperheight);  
  \fill[color=dark-red]   (-1cm, 3.9cm) rectangle(\the\paperwidth, 5.9cm);
 %\usebeamerfont{title}\insertsectionhead\par%
  %\node[text width=\the\paperwidth,align=center] at (current page.center) {\color{ExecusharesWhite}\Large\textbf{\insertsectionhead}};  
\node[text width=\the\paperwidth,align=center] at (6cm,4.9cm) {\color{white}\Large\textbf{\insertsectionhead}};
  \end{tikzpicture}
  \end{frame}
}

\newcommand{\imgsrc}[1]{ 
\begin{tikzpicture}[remember picture,overlay]
  \node[anchor=north, rotate=90, inner sep=0.5pt] at (current page.west) {\fontsize{5}{6}\selectfont \textcolor{light-gray}{#1}};
\end{tikzpicture}  
}

%
%
% Документ
%
%
\begin{document}

{
\setbeamercolor{background canvas}{bg=white} 
\usebackgroundtemplate{\includegraphics[width=\paperwidth,height=\paperheight]{back.png}}
\begin{frame}[plain]
\maketitle
\end{frame}
}

\frame{
\frametitle{Содержание}
\tableofcontents
}

\begin{frame}[c]\frametitle{Предметная область}
  \begin{columns}
    \column{0.4\linewidth}
    \includegraphics[width=0.9\linewidth]{имена.jpg}
    \column{0.6\linewidth}
    \begin{itemize}
    \item Первый шаг создания системы автоматизированной обработки информации -- \emph{формулировка понятий о предметах, фактах и событиях}, которыми будет оперировать информационная система.     
    \item Любой фрагмент предметной области может быть представлен как множество \emphb{сущностей}, между которыми существует некоторое множество \emphb{связей}
    \end{itemize}
  \end{columns}
  \imgsrc{\url{https://rusidea.org/39006}}
\end{frame}

\begin{frame}[c] 
\frametitle{Сущность-связь}
\begin{itemize}
  \item Модель \emphb{сущность-связь} (\emph{entity} - \emph{relationship model}, ER - model) является инструментом унифицированного представления данных, независимого от реализующего его программного обеспечения
  \item Модель \emphb{сущность-связь} относится к разряду концептуальных  
\end{itemize}
\end{frame}

\begin{frame}[c]
  \frametitle{История}
  \begin{columns}
    \column{0.4\linewidth}
    \includegraphics[width=1\linewidth]{chen1976.png}
    \column{0.6\linewidth}
  \begin{itemize}
    \item (Петер Пин-Шен Чен) \emphb{Chen, P. P.-S.} (1976). The entity-relationship model---toward a unified view of data. ACM Transactions on Database Systems, 1(1), 9–36.  
    \item \emphb{Schmid, H. A., Swenson, J. R.} (1975). On the semantics of the relational data model. Proceedings of the 1975 ACM SIGMOD International Conference on Management of Data - SIGMOD 75.    
  \end{itemize}
  \end{columns}
  \end{frame}


\section{Сущность и атрибуты}

\begin{frame}[c]
  \frametitle{Сущность}
  \begin{columns}
    \column{0.4\linewidth}
    \includegraphics[width=0.9\linewidth]{Цветок.jpg}
    \column{0.6\linewidth}
  \emphb{Сущность (entity)} -- это объект, который может быть идентифицирован неким способом, отличающим его от других объектов, например:
  \begin{itemize}
    \item конкретный человек
    \item предприятие
    \item событие
  \end{itemize} 
\end{columns}
\end{frame}

\begin{frame}[c] 
    \frametitle{Набор сущностей}
    \begin{columns}
      \column{0.35\linewidth}
      \includegraphics[width=1\linewidth]{Женщины.jpg}
      \column{0.65\linewidth}    
    \emphb{Набор сущностей (entity set)} -- множество сущностей одного типа (обладающих одинаковыми свойствами):
  \begin{itemize}  
    \item Все сотрудники банка
    \item Все люди, имеющие банковский счёт
    \item Все студенты    
  \end{itemize}    
  \emphb{Класс и экземпляр сущности} 
  \begin{itemize}  
    \item Класс: \emph{СТУДЕНТ}
    \item Экземпляр: \emph{СТУДЕНТ Раскольников Р.} 
    \end{itemize}     
  \end{columns}
\imgsrc{Фото: Екатерина Штукина / РИА Новости}
\end{frame}

\begin{frame}[c,fragile]
\frametitle{Атрибуты}
\emphb{Сущность} характеризуется множеством \emphb{атрибутов}, которые описывают свойства всех членов данного набора сущностей. \\
\vspace{10mm}
Существует множество работников предприятия. Каждого работника можно описать с помощью 
\begin{itemize}
  \item табельного номера
  \item имени
  \item даты рождения
\end{itemize} 
Отделы предприятия, в которых работают сотрудники, можно описать следующими атрибутами: 
\begin{itemize}
  \item номер отдела
  \item наименование  
\end{itemize} 
\end{frame}

\begin{frame}[c]
\frametitle{Домен}
  Множество значений (область определения) атрибута называется \emphb{доменом}:
  \begin{itemize}
    \item Домен \emph{атрибута} 'год рождения' -- целые числа 
    \item Домен \emph{атрибута} 'пол' -- (М/Ж, 0/1, 1/2)  
  \end{itemize}
\end{frame}

\begin{frame}[c]
  \frametitle{Атрибут как функция}
  \emphb{Атрибут} -- функция, отображающая \emphb{набор сущностей} в набор значений или в декартово произведение наборов значений:
  \begin{itemize}
    \item атрибут \emphb{ВОЗРАСТ} отображает сущность \emphb{СОТРУДНИК} в набор значений (домен) \emphb{ЧИСЛО\_ЛЕТ}
    \item Атрибут \emphb{ИМЯ} производит отображение в декартово произведение наборов значений \emphb{ИМЯ}, \emphb{ФАМИЛИЯ} и \emphb{ОТЧЕСТВО}
  \end{itemize}
  \end{frame}


\begin{frame}
  \frametitle{Простой и составной атрибут}
  \begin{columns}
    \column{0.5\linewidth}
    \includegraphics[width=1\linewidth]{Простой_и_составной.png}
    \column{0.5\linewidth}
  \begin{itemize}
    \item \emph{Простой атрибут} состоит из одного элемента    
    \item \emph{Составной атрибут} состоит нескольких элементов
  \end{itemize}
\end{columns}
\end{frame}


\begin{frame}
  \frametitle{Производный атрибут}
  \begin{columns}
    \column{0.5\linewidth}
    \includegraphics[width=1\linewidth]{Простой_и_составной.png}
    \column{0.5\linewidth}
    \begin{itemize}
      \item Производный атрибут содержит значение, которое может быть вычислено на основе других атрибутов. 
      \item Например, \emph{возраст} сотрудника может быть \emph{вычислен} на основе атрибута \emph{'дата рождения'} и текущей даты.  
    \end{itemize}
\end{columns}
\end{frame}


\begin{frame}
  \frametitle{Однозначный и многозначный атрибут}
  \begin{columns}
    \column{0.5\linewidth}
    \includegraphics[width=1\linewidth]{Многозначный.png}
    \column{0.5\linewidth}
    \begin{itemize}
      \item Однозначный атрибут хранит только одно значение (возраст, дата рождения)
      \item Многозначный атрибут может иметь несколько значений (номера телефонов сотрудника).  
    \end{itemize}
\end{columns}
\end{frame}

\begin{frame}[c]
  \frametitle{Ключ сущности}
  \begin{columns}
    \column{0.5\linewidth}
    \includegraphics[width=1\linewidth]{moss.png}
    \column{0.5\linewidth}
    \emphb{Ключ сущности} — это группа атрибутов, такая, что отображение набора сущностей в соответствующую группу наборов значений является взаимооднозначным отображением или \emph{группа атрибутов, однозначно идентифицирующих сущность в некотором наборе}.   \end{columns}
    \imgsrc{\url{www.psychologicalscience.org} \& \url{www.pinterest.ru/pin/16818198580468875}}
  \end{frame}

\begin{frame}[c]
\frametitle{Примеры}
\begin{columns}
  \column{0.4\linewidth}
  \includegraphics[width=1\linewidth]{Цой.jpg}
  \column{0.6\linewidth}
  \begin{itemize}
    \item \emph{Табельный номер} сотрудника предприятия однозначно идентифицирует его среди множества всех сотрудников
    \item \emph{ИНН или Номер паспорта} идентифицируют гражданина РФ
    \item \emph{Логин и пароль} на сайте или в приложении идентифицируют пользователя
  \end{itemize}
\end{columns}
\end{frame}

\begin{frame}
  \frametitle{Сильная сущность}  
  \begin{itemize}
    \item Существование \emphb{сильной сущности} не зависит от существования какой-либо другой сущности в схеме. 
    \item Сильная сущность всегда имеет первичный ключ в наборе атрибутов, который описывает сильную сущность. Каждый объект в наборе сильных объектов может быть уникально идентифицирован.
  \end{itemize}
\end{frame}

\begin{frame}
  \frametitle{Слабая сущность}  
  \begin{itemize}
    \item \emphb{Слабая сущность} зависит от ее владельца, то есть сильной сущности. 
    \item \emphb{Слабый объект} не имеет первичного ключа, вместо этого он имеет частичный ключ, который однозначно распознает слабые объекты. 
    \item У слабой сущности недостаточно атрибутов для идентификации.
    \item Первичный ключ слабого объекта - это составной ключ, сформированный из первичного ключа сильного объекта и частичного ключа слабого объекта.    
  \end{itemize}     
\end{frame}


\begin{frame}
  \frametitle{Нотации}
  Существует несколько способов изображения сущностей и их связей:
  \begin{itemize}
    \item \emphb{Нотация Чена}
    \item \emphb{Нотация Мартина} (воронья лапка)
    \item IDEF1X
    \item ...
  \end{itemize}
\end{frame}


\begin{frame}
  \frametitle{Сотрудник}
  \centering{\includegraphics[width=0.8\linewidth]{ER_сотрудник.png}}
\end{frame}

\begin{frame}{c}
  \frametitle{Слабая сущность}
  {\centering{\includegraphics[width=0.9\linewidth]{example_ER_weak.png}}} \\
  \vfill
  \emph{Слабая сущность} Группа не существует без сущности Университет.
\end{frame}

\section{Связи}

\begin{frame}[c]
\frametitle{Связь}
\emphb{Связь} -- это ассоциация, установленная между несколькими сущностями:
\begin{itemize}
  \item Каждый \emphb{сотрудник} работает в каком-либо \emphb{отделе}:\\
  между сущностями \emphb{СОТРУДНИК} и \emphb{ОТДЕЛ} существует связь \emph{'работает в'} или \emph{ОТДЕЛ-СОТРУДНИК}
  \item  Один из работников отдела является его руководителем:\\
  между сущностями \emphb{СОТРУДНИК} и \emphb{ОТДЕЛ} имеется связь \emph{'руководит'} или \emph{ОТДЕЛ-РУКОВОДИТЕЛЬ}
\end{itemize} 
\end{frame}

\begin{frame}[c]
  \frametitle{Пример: Сотрудник - Отдел}
  \begin{center}
  \begin{tikzpicture}[auto,node distance=1.5cm]
    \tikzstyle{ent}=[draw, fill=yellow!20, minimum size=2em]
    \tikzstyle{rel}=[draw, fill=green!20, minimum size=2em]
    \node[ent,entity] (node1) {Сотрудник};
    \node[rel,relationship] (rel1) [right = of node1] {Работать};
    \node[ent,entity] (node2) [right = of rel1]	{Отдел};
    \path (rel1) edge node {} (node1) edge node {}	(node2);
  \end{tikzpicture}  
  \end{center}
  \end{frame}

\begin{frame}  
    \frametitle{Атрибуты и роли}  
    Связь может иметь атрибуты, например, связь \emph{'работать'} может иметь атрибут \emphb{оклад}      
    \begin{center} \includegraphics[width=0.8\linewidth]{Атрибут_связи.png} \end{center}              
\end{frame}

\begin{frame}
  \frametitle{Роль сущности в связи}
  \begin{itemize}
        \item \emphb{Роль} сущности в связи -- функция, которую выполняет сущность в данной связи. 
        \item В связи \emph{РОДИТЕЛЬ-ПОТОМОК} сущности \emph{ЧЕЛОВЕК} могут иметь роли \emph{'родитель'} и \emph{'потомок'}. 
  \end{itemize}   
\end{frame}

\begin{frame}[c]
\frametitle{Бинарные связи}
\begin{itemize}
  \item \emphb{Классы связей} -- взаимоотношения между классами сущностей
  \item \emphb{Экземпляры связей} -- взаимоотношения между экземплярами сущностей
  \item \emphb{Класс связи} может охватывать несколько (n) классов сущностей. 
  \item При $n=2$ связь называется \emph{бинарной}. 
\end{itemize}    
\end{frame}

\begin{frame}[c]
  \frametitle{n=3}     
  \begin{center} \includegraphics[width=0.9\linewidth]{Набор_связей.png} \end{center}              
\end{frame}

\begin{frame}
  \frametitle{Типы бинарной связи}
  {\centering \includegraphics[width=0.95\linewidth]{Сотрудник-отдел.png}} \\
  \vfill
  \begin{itemize}
    \item В каждом отделе может быть много (M) сотрудников
    \item Каждый сотрудник работаетет только в одном (1) отделе
  \end{itemize}  
\end{frame}

\begin{frame}
  \frametitle{Типы бинарной связи}
  {\centering \includegraphics[width=0.95\linewidth]{Сотрудник-отдел.png}} \\
  \vfill
  \begin{itemize}
    \item Числа M и 1 называются \emphb{кардинальными} числами     
  \end{itemize}  
\end{frame}

\begin{frame}
\frametitle{Модальность связи}
  \begin{itemize}
    \item Модальность связи описывает её обязательность
    \item Модальность \emphb{должен} указывает на то, что экземпляр сущности обязан связаться минимум 1 раз
    \item Модальность \emphb{может} указывает на то, что экземпляр сущности может и не иметь связи с экземпляром другой сущности
    \end{itemize}  
\end{frame}


\begin{frame}
  \frametitle{Типы бинарных связей}
  \begin{columns}
    \column{0.4\linewidth}
  \begin{itemize}
    \item Один к одному
    \item Один ко многим
    \item Многие ко многим 
  \end{itemize}    
    \column{0.6\linewidth} 
    \begin{tikzpicture}[auto,node distance=1.5cm]
      \node[entity] (node1) {C1};
      \node[relationship] (rel1) [below right = of node1] {O1};
      \node[entity] (node2) [above right = of rel1]	{C2};
      \path (rel1) edge node {1-\(m\)} (node1) edge node {\(n\)-\(m\)}	(node2);
    \end{tikzpicture}  
  \end{columns}   
  \end{frame}


  \begin{frame}[c]
    \frametitle{Один к одному}
    \begin{center}
    \begin{tikzpicture}[auto,node distance=1.5cm]
      \tikzstyle{ent}=[draw, fill=yellow!20, minimum size=2em]
      \tikzstyle{rel}=[draw, fill=green!20, minimum size=2em]
      \node[ent,entity] (node1) {Сотрудник};
      \node[rel,relationship] (rel1) [right = of node1] {Руководить};
      \node[ent,entity] (node2) [right = of rel1]	{Отдел};
      \path (rel1) edge node {(1,1)} (node1) edge node {(0,1)}	(node2);
    \end{tikzpicture}  
    \end{center}
    \end{frame}

    \begin{frame}[c]
      \frametitle{Один ко многим}
      \begin{center}
      \begin{tikzpicture}[auto,node distance=1.5cm]
        \tikzstyle{ent}=[draw, fill=yellow!20, minimum size=2em]
        \tikzstyle{rel}=[draw, fill=green!20, minimum size=2em]
        \node[ent,entity] (node1) {Сотрудник};
        \node[rel,relationship] (rel1) [right = of node1] {Работать};
        \node[ent,entity] (node2) [right = of rel1]	{Отдел};
        \path (rel1) edge node {(0,n)} (node1) edge node {(1,1)}	(node2);        
      \end{tikzpicture}  
      \end{center}
      \end{frame}
    
      \begin{frame}[c]
        \frametitle{Многие ко многим}
        \begin{center}
        \begin{tikzpicture}[auto,node distance=1.5cm]
          \tikzstyle{ent}=[draw, fill=yellow!20, minimum size=2em]
          \tikzstyle{rel}=[draw, fill=green!20, minimum size=2em]
          \node[ent,entity] (node1) {Сотрудник};
          \node[rel,relationship] (rel1) [right = of node1] {входит в};
          \node[ent,entity] (node2) [right = of rel1]	{Рабочая группа};
          \path (rel1) edge node {(1,m)} (node1) edge node {(0,n)}	(node2);
        \end{tikzpicture}  
        \end{center}
        \end{frame}

  \begin{frame}
    \frametitle{Многие ко многим}
    {\centering \includegraphics[width=0.95\linewidth]{Многие_ко_многим.png}}     
  \end{frame}




% \begin{frame}[c]
% \frametitle{Сущность и атрибуты}
% \begin{itemize}
%   \item \emph{Сущность} есть объект любой природы, данные о котором хранятся в базе данных 
%   \item Данные о сущности хранятся в \emph{отношении}
%   \item \emph{Атрибуты} представляют собой свойства, характеризующие сущность
%   \item В структуре таблицы каждый атрибут именуется и ему соответствует заголовок некоторого столбца таблицы.
% \end{itemize}
% \end{frame}

% \begin{frame}[c]
% \frametitle{Домен}
% \emph{Домен} представляет собой множество всех возможных значений определенного атрибута отношения. 

% \emph{Сотрудник} включает 4 домена:
% \begin{enumerate}
%   \item фамилии всех сотрудников
%   \item номера всех отделов
%   \item названия всех должностей
%   \item даты рождения всех сотрудников
% \end{enumerate}
% \end{frame}

% \begin{frame}[c]
% \frametitle{Схема отношения}
% Схема или заголовок отношения представляет собой список имен атрибутов.
% Для отношения \emphb{Сотрудник}  это 
% \begin{itemize}
%   \item ФИО
%   \item Отдел
%   \item Должность
%   \item Д\_Рождения
% \end{itemize}
% Множество кортежей отношения часто называют содержимым отношения.
% \end{frame}

% \begin{frame}[c]
% \frametitle{Первичный ключ}
% Ключ отношения, ключевой атрибут 
% \begin{itemize}
%   \item атрибут отношения, однозначно идентифицирующий каждый из его кортежей
%   \item ключ может быть составным (сложным) -- состоять из нескольких атрибутов
%   \item каждое отношение обязательно имеет комбинацию атрибутов, которая может служить ключом. 
%   \item существование ключа гарантируется тем, что отношение — это множество, которое не содержит одинаковых элементов
% \end{itemize} 
% Для отношения \emphb{Сотрудник} первичным ключом является \emph{ФИО}.   
% В отношении может быть несколько ключей -- возможные ключи.
% \end{frame}

% \begin{frame}[c]
% \frametitle{Внешний ключ}
% \begin{itemize}
%   \item отношение $R_1$ может содержать не ключевой атрибут, значение которого является ключом другого отношения $R_2$
%   \item атрибут в отношении $R_1$ -- это \emphb{внешний ключ}
% \end{itemize}  
% \vfill
% \begin{columns}
% \column{0.5\linewidth}
% \begin{tabular}{ll}
% \emph{ФИО} & \emph{Отдел} \\
% \hline
% Иванов И. И. & 1 \\
% Горбунков С. С. & 2 \\
% Петров В. Е. & 2 \\
% ... & \\
% \end{tabular}
% \column{0.5\linewidth}
% \begin{tabular}{ll}
% \emph{Отдел} & \emph{Наименование} \\
% \hline
% 1 & Отдел маркетинга \\
% 2 & IT-отдел \\
% 3 & Бухгалтерия \\
% 4 & Отдел планирования 
% \end{tabular}
% \end{columns}
% \end{frame}

\section{Нотация Мартина}

\begin{frame}
  \frametitle{Отношения "Один к одному"}
  Каждому сотруднику соответствует одна и только одна сущность \emphb{паспорт}
  \begin{center}
  \includegraphics[trim={0 12cm 0 0},clip,width=0.8\linewidth]{Один.png}
  \end{center}
\end{frame}

\begin{frame}
  \frametitle{Отношения "Один к одному"}
  \begin{itemize}
    \item Медаль принадлежит только одному абитуриенту
    \item Абитуриент может не иметь медали (от 0 до 1 медали) 
  \end{itemize}
  \begin{center}
  \includegraphics[trim={0 0 0 12cm},clip,width=0.8\linewidth]{Один.png}
  \end{center}
\end{frame}

\begin{frame}
  \frametitle{Отношения "Многие ко многим"}
  \begin{itemize}
    \item Покупатель в зависимости от количества покупок может иметь несколько товарных чеков (от 0 до n)
    \item Товарный чек принадлежит только одному покупателю
  \end{itemize}
  \begin{center}
  \includegraphics[trim={0 12cm 0 0},clip,width=0.8\linewidth]{Несколько.png}
  \end{center}
\end{frame}

\begin{frame}
  \frametitle{Отношения "Многие ко многим"}
  \begin{itemize}
    \item Студент может быть записан в нескольких библиотеках (от 0 до n)
    \item В библиотеке должен быть хотя бы один читатель (от 1 до m)
  \end{itemize} 
  \begin{center}
  \includegraphics[trim={0 0 0 12cm},clip,width=0.8\linewidth]{Несколько.png}
  \end{center}
\end{frame}

\section{Пример}

\begin{frame}
  \frametitle{Информационная система}
  Необходимо разработать информационную систему для компании, продающей бытовую технику в нескольких магазинах (филиалах). В информационной системе необходимо:
  \begin{itemize}
    \item хранить информацию о покупателях;
    \item хранить информацию о товарах, включая информацию о производителе товара и категории товара);
    \item учитывать поступление товара в филиалы (магазины) со склада организации;
    \item учитывать изменение цен на товары;
    \item вести учет продаж товаров в филиалах.        
  \end{itemize}
\end{frame}

\begin{frame}
\frametitle{Сущности}
\begin{itemize}
  \item \emph{Покупатель}
  \item \emph{Товар}
  \item \emph{Филиал} организации  
  \item \emph{Товарная накладная} учитывает продажу товара покупутелю
  \item \emph{Требование-накладная} учитывает поступление товара со склада организации в филиал
\end{itemize}
\end{frame}

\tikzset{every entity/.style={draw=orange, fill=orange!20}}

\begin{frame}
  \frametitle{Покупатель}
  Ключевые атрибуты
  \begin{itemize}    
    \item \emphb{Фамилия, имя, отчество}
    \item \emphb{Адрес электронной почты}
  \end{itemize}
  Атрибуты
  \begin{itemize}    
    \item Телефон
    \item Адрес    
  \end{itemize}  
\end{frame}


\begin{frame}
  \frametitle{Покупатель}
  \begin{center}
  \includegraphics[width=0.8\linewidth]{Покупатель.png}
  \end{center}
\end{frame}

\begin{frame}
  \frametitle{Филиал}
  Ключевые атрибуты
  \begin{itemize}    
    \item \emphb{Наименование}
    \item \emphb{Адрес}
  \end{itemize}
  Атрибуты
  \begin{itemize}    
    \item Телефон      
  \end{itemize}  
\end{frame}

\begin{frame}
  \frametitle{Филиал}
  \begin{center}
  \includegraphics[width=0.7\linewidth]{Филиал.png}
  \end{center}
\end{frame}

\begin{frame}
  \frametitle{Товар}
  Ключевые атрибуты
  \begin{itemize}    
    \item \emphb{Идентификатор}    
  \end{itemize}
  Атрибуты
  \begin{itemize}    
    \item Наименование
    \item Категория
    \item Производитель
    \item Стоимость
  \end{itemize}  
\end{frame}

\begin{frame}
  \frametitle{Товар}
  \begin{center}
  \includegraphics[width=0.6\linewidth]{Товар.png}
  \end{center}
\end{frame}

\begin{frame}
  \frametitle{Товарный чек}
  \begin{itemize}
    \item Товарный чек содержит информацию о проданных покупателю товарах в филиале    
    \item Ключевые атрибуты сущности: \emphb{Номер и дата}
    \item Товарный чек также должен содержать информацию о суммарной стоимости проданных товаров и их количестве
  \end{itemize}
\end{frame}

\begin{frame}
  \frametitle{Требование-накладная}
  \begin{itemize}
    \item Требование-накладная содержит информацию о переданных в филиал товаров со склада    
    \item Ключевые атрибуты сущности: \emphb{Номер и дата}
    \item Требование-накладная содержит содержит количество переданных товаров
  \end{itemize}
\end{frame}

\begin{frame}
  \frametitle{Товарный чек и требование-накладная}
  \includegraphics[width=1\linewidth]{Чек_и_накладная.png}
\end{frame}

\begin{frame}
  \frametitle{Связь "покупатель -- товарный чек"}
  \begin{itemize}
    \item Покупатели \emph{оплачивают} товары, представленные в товарном чеке 
    \item Каждый покупатель может делать несколько покупок, но в каждом товарном чеке содержится информация только об одном покупателе
    \item Покупатель может и не иметь ни одного товарного чека, но в чеке обязательно должна быть инфорация о покупателе 
    \item \emphb{один ко многим}
  \end{itemize}
\end{frame}


\begin{frame}
  \frametitle{Связь "товарный чек -- филиал"}
  \begin{itemize}
    \item Товарный чек выписывается в филиале 
    \item Каждый филиал может выписывать несколько товарных чеков, но в каждом товарном чеке содержится информация только об одном филиале, который его выписал
    \item Филиал может не выписать ни одного товарного чека (например, вновь открывшийся), но в чеке обязательно должна быть инфорация о филиале 
    \item \emphb{один ко многим}
  \end{itemize}
\end{frame}

\begin{frame}
  \frametitle{Связи "товарный чек -- запись -- товар"}
  \begin{itemize}
    \item В товарном чеке должна быть информация хотя бы об одном проданном товаре, с указанием количества и стоимости -- это сущность \emphb{запись о товаре}
    \item Товарный чек может содержать несколько записей    
    \item \emphb{Запись о товаре} находится в одном товарном чеке
    \item \emphb{Запись о товаре} сылается или содержит информацию только об одном товаре
    \item Каждый товар может происутсвовать в нескольких товарных чеках    
    \item Товарный чек -- запись о товаре: \emph{один ко многим}
    \item Товар -- запись о товаре: \emph{один ко многим}
  \end{itemize}
\end{frame}

\begin{frame}
  \frametitle{Связи требования-накладной}  
  \begin{itemize}
    \item В требовании-накладной должна быть информация хотя бы об одном поставленном товаре, с указанием количества и текущей стоимости -- это сущность \emphb{запись о товаре в требовании-накладной}
    \item Требование-накладная может содержать несколько записей    
    \item \emphb{Запись о товаре в требовании накладной} находится в одном требовании
    \item \emphb{Запись о товаре в требовании накладной} сылается или содержит информацию только об одном товаре
    \item Каждый товар может происутсвовать в нескольких требованиях-накладных    
    \item Требование-накладная содержит информацию о филиале, в которй поставляется товар со скалада    
  \end{itemize}
\end{frame}

\begin{frame}  
  \frametitle{Связи}
  \begin{center}
  \includegraphics[width=0.8\linewidth]{Связи.png}
  \end{center}
\end{frame}

% \begin{frame}
%   \frametitle{ER-Диаграмма}
%   \scriptsize
%   \begin{center}
%   \begin{tikzpicture}[auto,node distance=1.2cm]
%     \tikzstyle{ent}=[draw, fill=yellow!20, minimum size=2em]
%     \tikzstyle{rel}=[draw, fill=green!20, minimum size=2em]
%     \node[ent,entity] (node1) {Покупатель};
%     \node[rel,relationship] (rel1) [right = of node1] {Получать};
%     \node[ent,entity] (node2) [below = of rel1]	{Накладная};
%     \path (rel1) edge node {1} (node1) edge node {1...m}	(node2);
%     \node[rel,relationship] (rel2) [right = of node2]	{Содержать};
%     \node[ent,entity] (node4) [below = of rel2]	{Товар};
%     \path (rel2) edge node {1...r} (node2) edge node {1...q}	(node4);    
%     \node[ent,entity] (node5) [below left = of node2]	{Склад};
%     \node[rel,relationship] (rel3) [below = of node2]	{Хранить};
%     \node[rel,relationship] (rel4) [left = of node2]	{Выписывать};
%     \path (rel4) edge node {1...k} (node2) edge node {1}	(node5);    
%     \path (rel3) edge node {1...p} (node5) edge node {0...g}	(node4);    
%   \end{tikzpicture}  
% \end{center}
% \end{frame}



\frame[plain]{
\frametitle{Список использованных источников}
\small
\begin{itemize}
  \item Хомоненко А. Д., Цыганков В. М., Мальцев М. Г. Базы данных: Учебник для высших учебных заведений / Под ред. npоф. А. Д. Хомоненко. -- 6-е изд., доп. - СПб.: КОРОНА-Век, 2009. -- 736 с.
  \item Зеленков Ю.А. Введение в базы данных. \\
  Центр Интернет ЯрГУ \\
  {\scriptsize \url{http://www.mstu.edu.ru/study/materials/zelenkov/toc.html}}
  \item 10 типов структур данных, которые нужно знать + видео и упражнения \\ 
  {\scriptsize \url{https://habr.com/ru/post/334914/}}
\end{itemize}
}

\frame[plain,c]{
  \begin{center}
  \qrcode[height=1in]{https://classmech.ru/pages/databases/main}\\
  \vspace{2mm}
  {\tiny \url{https://classmech.ru/pages/databases/main} }
  \end{center}
}


\end{document}